 Powershell Tutorial for Beginners: Learn in 1 Day   What is PowerShell?Windows PowerShell is object-oriented automation engine and scripting language. It is designed mainly for the system administrators. It helps IT, professionals, to control & automate the administration of the Window OS and other applications. It introduced some compelling new concepts that enable you to extend the the knowledge you have gained and the scripts that you have created within the Windows Command Prompt and Windows Script Host environments. It combines the flexibility of scripting, command-line speed, and the power of a GUI-based admin tool. It allows you to solve problems efficiently by helping system admin to eliminate future manual labor hours. We will go through all the important aspect which you should know to learn PowerShell. In this training course, you will learn  What is PowerShell?  Why Use Powershell?   PowerShell History   Features of Powershell   How to launch PowerShell   PowerShell Cmdlet   Cmdlet vs Command:   Powershell Data types:   Special Variables   PowerShell Scripts   First PowerShell Script   What is PowerShell ISE?   PowerShell Concepts   PowerShell Vs Command Prompt   Applications of Powershell   This is a complete guide to PowerShell… let's begin! Why Use Powershell?Here, are some important reason for using Powershell:  Powershell offers a well-integrated command-line experience for the operation system PowerShell allows complete access to all of the types in the .NET framework Trusted by system administrators. PowerShell is a simple way to manipulate server and workstation components It's geared toward system administrators by creating a more easy syntax  PowerShell is more secure than running VBScript or other scripting languages  PowerShell HistoryPowerShell first version 1.0 was released in 2006. Today, PowerShell is at version 5.1. As the year and version gone by, PowerShell's capabilities and hosting environments grew significantly. Let See Version wise History of Powershell: PowerShell version 1 supported the local administration of Windows Server 2003 PowerShell 2.0 was integrated with Windows 7 and Windows Server 2008 R2. This version supports for remoting and enhances the capabilities of PowerShell like transactions, background jobs, events, debugging, etc. PowerShell 3.0 was released as an internal part of the Windows management framework. It was installed on Windows 8 and Windows Server 2012. You can add and scheduled jobs, session connectivity, automatic module loading, etc.  PowerShell 4.0 was shipped with Windows 8.1 and Windows Server 2012 R2. In this version added support for desired state configuration, enhanced debugging, network diagnostics. PowerShell 5.0 was released as internal part of Windows management framework 5. The feature offers in this version are remote debugging, class definitions, .NET enumerations, , etc.Features of Powershell PowerShell Remoting: PowerShell allows scripts and cmdlets to be invoked on a remote machine. Background Jobs: It helps you to invoked script or pipeline asynchronously. You can run your jobs either on the local machine or multiple remotely operated machines. Transactions: Enable cmdlet and allows developers to perform Evening: This command helps you to listen, forwarding, and acting on management and system events. Network File Transfer: Powershell offers native support for prioritized, asynchronous, throttled, transfer of files between machines using the Background Intelligent Transfer Service (BITS) technology.  How to launch PowerShellPowerShell is pre-installed in all latest versions of Windows. We need to launch PowerShell for that we need to follow the given steps: Step 1) Search for PowerShell in Windows. Select and Click  Step 2) Power Shell Window Opens  PowerShell CmdletA cmdlet which is also called Command let is a is a lightweight command used in the Window base PowerShell environment. PowerShell invokes these cmdlets in the command prompt. You can create and invoke cmdlets command using PowerShell APIS. Cmdlet vs. Command:Cmdlets are different from commands in other command-shell environments in the following manners − Cmdlets are .NET Framework class objects It can't be executed separatelyCmdlets can construct from as few as a dozen lines of codeParsing, output formatting, and error presentation are not handled by cmdletsCmdlets process works on objects. So text stream and objects can't be passed as output for pipeliningCmdlets are record-based as so it processes a single object at a timeMost of the PowerShell functionality comes from Cmdlet's which is always in verb-noun format and not plural. Moreover, Cmdlet's return objects not text. A cmdlet is a series of commands, which is more than one line, stored in a text file with a .psl extension. A cmdlet always consists of a verb and a noun, separated with a hyphen. Some of the verbs use for you to learn PowerShell is: Get — To get somethingStart — To run somethingOut — To output somethingStop — To stop something that is runningSet — To define somethingNew — To create something PowerShell commands   Following is a list of important PowerShell Commands: Get-Help: Help about PowerShell commands and topics Example: Display help information about the command Format-Table Get-Help Format-Table  Get-Command: Get information about anything that can be invoked Example: To generate a list of cmdlets, functions installed in your machine Get-Command Get-Service: Finds all cmdlets with the word 'service' in it. Example: Get all services that begin with "vm" Get-Service "vm*" Get- Member: Show what can be done with an object Example: Get members of the vm processes. Get-Service "vm*" | Get-Member Other Commands: Get Module Shows packages of commands Get Content This cmdlet can take a file and process its contents and do something with it Get- get Finds all cmdlets starting with the word 'get- Example: Create a Folder New-Item -Path 'X:\Guru99' -ItemType DirectoryOutput  Powershell Data types:  Special Variables Special Variable Description $Error An array of error objects which display the most recent errors $Host Display the name of the current hosting application $Profile Stores entire path of a user profile for the default shell $PID Stores the process identifier $PSUICulture It holds the name of the current UI culture. $NULL Contains empty or NULL value. $False Contains FALSE value $True Contains TRUE value PowerShell ScriptsPowershell scripts are store in .ps1 file. By default, you can't run a script by just double-clicking a file. This protects your system from accidental harm. To execute a script:    Step 1: right-click it and click "Run with PowerShell."  Moreover, there is a policy which restricts script execution. You can see this policy by running the Get-ExecutionPolicy command. You will get one of the following output: Restricted— No scripts are allowed. This is the default setting, so it will display first time when you run the command. AllSigned— You can run scripts signed by a trusted developer. With the help of this setting, a script will ask for confirmation that you want to run it before executing. RemoteSigned— You can run your or scripts signed by a trusted developer. Unrestricted— You can run any script which you wants to run Steps to Change Execution Policy Step 1) Open an elevated PowerShell prompt. Right Click on PowerShell and "Run as Administrator"  Step 2) Enter the Following commands Get-ExecutionPolicySet-execution policy unrestrictedEnter Y in the promptGet-ExecutionPolicy First PowerShell ScriptIn a notepad write the following command Write-Host "Hello, Guru99!"PowerShell Scripts have an extension ps1. Save the file as FirstScript.ps1  In Powershell, call the script using the command & "X:\FirstScript.ps1" What is PowerShell ISE?The Windows PowerShell Integrated Scripting Environment(ISE) is the default editor for Windows PowerShell. In this ISE, you can run commands, writer test, and debug scripts in an in a window base GUI environment. You can do multiline editing, syntax coloring, tab completion, selective execution and lots of other things. Windows PowerShell ISE also allows you to run commands in a console pane. However, it also supports panes that you can use to simultaneously view the source code of your script and other tools which you can plug into the ISE. You can even open up multiple script windows at the same time. This is specifically useful when you are debugging a script which uses functions defined in other scripts or modules.  The same script we created in notepad, can be created in ISEPaste code into the editorSave ScriptUse F5 to run the scriptObserve output in the console Sample 2: The following code will give the Free Virtual Memory in your machine 

Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |

Select-Object -Property CSName,FreeVirtualMemory 

 PowerShell ConceptsCmdlets Cmdlet are build-command written in .net languages like VB or C#. It allows developers to extend the set of cmdlets by loading and write PowerShell snap-ins. FunctionsFunctions are commands which is written in the PowerShell language. It can be developed without using other IDE like Visual Studio and devs. ScriptsScripts are text files on disk with a .psl extensionApplicationsApplications are existing windows programs.What ifTells the cmdlet not to execute, but to tell you what would happen if the cmdlet were to run. ConfirmInstruct the cmdlet to prompt before executing the command. VerboseGives a higher level of detail. DebugInstructs the cmdlet to provide debugging information. ErrorActionInstructs the cmdlet to perform a specific action when an error occurs. Allowed actions continue, stop, silently- continue and inquire. ErrorVariableIt specifies the variable which holds error information. OutVariableTells the cmdlet to use a specific variable to hold the output information OutBufferInstructs the cmdlet to hold the specific number of objects before calling the next cmdlet in the pipeline.Advantages of using PowerShell script PowerShell scripts are really powerful and could do much stuff in fewer lines. Variables are declared in the form $<variable> Variables could be used to hold the output of command, objects, and values. "Type" of a variable need not be specified. PowerShell Vs. Command PromptPowerShell Command Prompt PowerShell deeply integrates with the Windows OS. It offers an interactive command line interface and scripting language. Command Prompt is a default command line interface which provided by Microsoft. It is a simple win32 application that can interact and talk with any win32 objects in the Windows operating system. PowerShell uses what are known as cmdlets. It can be invoked either in the runtime environment or the automation scripts. No such features offer by command prompt. PowerShell considers them as objects. So the output can be passed as an input to other cmdlets through the pipeline. Command Prompt or even the *nix shell, the output generated from a cmdlet is not just a stream of text but a collection of objects. The PowerShell is very advanced regarding features, capabilities and inner functioning. Command prompt is very basic. Applications of PowershellToday, PowerShell has become an ideal choice for IT administrators as it eases management operation and effort in large corporate networks. For example, let's assume that you are managing a large network which contains more than four hundred servers. Now you want to implement a new security solution. This security solution depends on a certain service which needs to run on those servers. You can surely log in to each server and see if they have that service install and running or not. However, it certainly takes a lot of human errors as your staff needs to spend lots of time on this non-productive process. However, if you use PowerShell, then you could complete this task in just a few minutes. That's because the entire operation is done with a single script which gathers information about the services running on the servers. Summary  Windows PowerShell is object-oriented automation engine and scripting language Powershell offers a well-integrated command-line experience for the operation system PowerShell first version 1.0 was released in 2006 PowerShell allows scripts and cmdlets to be invoked on a remote machine PowerShell is pre-installed in all latest versions of Windows A cmdlet is a lightweight command used in the Window base PowerShell environment Get, Start, Out, Stop, Set, New are important PowerShell commands Boolean, Byte, Chat, Decimal, Decimal, Long are important Data Type of PowerShell $Error. $Host, $Profile, $PID, $PSUICulture, $NULL are some special variable used in PowerShell  The Windows PowerShell Integrated Scripting Environment(ISE) is the default editor for PowerShell PowerShell deeply integrates with the Windows OS whereas Command Prompt is a default command line interface which provided by Microsoft PowerShell has become an ideal choice for IT administrators as it eases management operation and effort in large corporate networks   